package com.example.springflowable.ask_for_leave.service;

import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.task.api.Task;

import java.util.List;

/**
 * @Classname TaskService
 * @Description TODO
 * @Date 2022/5/6 15:14
 * @Created by XiongXiong
 * @Author: X.I.O
 */
public interface TaskListService {

    /**
     * 查询我的任务
     * from  fhadmin.cn
     * @param USERNAME
     * @return 返回任务列表
     */
    List<Task> findMyPersonalTask(String USERNAME);

    /**
     * 完成任务
     * from  fhadmin.cn
     * @param taskId 任务ID
     */
    void completeMyPersonalTask(String taskId);

    /**
     * 作废流程
     * @param processId  流程实例ID
     * @param reason     作废原因
     * @throws Exception
     */
    void deleteProcessInstance(String processId, String reason) throws Exception;

    /**
     * 删除历史流程
     * from  fhadmin.cn
     * @param PROC_INST_ID_ 流程实例ID
     * @throws Exception
     */
    void deleteHiProcessInstance(String PROC_INST_ID_) throws Exception;

    /**
     * 流程发布
     */
    void processEngineDeploy();

    /**
     * 获取历史任务
     * @return
     */
    List<HistoricActivityInstance> getHistory();

}
